Mutation of Java Objects
نویسندگان
چکیده
Fault insertion based techniques have been used for measuring test adequacy and testability of programs. Mutation analysis inserts faults into a program with the goal of creating mutation-adequate test sets that distinguish the mutant from the original program. Software testability is measured by calculating the probability that a program will fail on the next test input coming from a predefined input distribution, given that the software includes a fault. Inserted faults must represent plausible errors. It is relatively easy to apply standard transformations to mutate scalar values such as integers, floats, and character data, because their semantics are well understood. Mutating objects that are instances of user defined types is more difficult. There is no obvious way to modify such objects in a manner consistent with realistic faults, without writing custom mutation methods for each object class. We propose a new object mutation approach along with a set of mutation operators and support tools for inserting faults into objects that instantiate items from common Java libraries heavily used in commercial software as well as user defined classes. Preliminary evaluation of our technique shows that it should be effective for evaluating real-world software testing suites.
منابع مشابه
Mutations in the RpoB Gene of Multidrug-Resistant Mycobacterium Tuberculosis Isolates from Semarang, Indonesia
ABSTRACTTuberculosis is an infectious disease which occurs widely in the world and becomes one of the top 10 causes of death worldwide. Mutations of the RpoB gene cause the resistance of Mycobacterium tuberculosis to rifampicin that contributes to the occurrence of MDR-TB. This study aimed to determine the pattern of rpoB gene polymorphisms in the MDR M. tuberculosis in Semarang, Indonesia. Mos...
متن کاملA Technique for Mutation of Java Objects
Mutation analysis inserts faults into a program to create test sets that distinguish the mutant from the original program. Inserted faults must represent plausible errors. Standard transformations can mutate scalar values such as integers, floats, and character data. Mutating objects is an open problem, because object semantics are defined by the programmer and can vary widely. We develop mutat...
متن کاملAN INTRODUCTION TO HIGHER CLUSTER CATEGORIES
In this survey, we give an overview over some aspects of the set of tilting objects in an $m-$cluster category, with focus on those properties which are valid for all $m geq 1$. We focus on the following three combinatorial aspects: modeling the set of tilting objects using arcs in certain polygons, the generalized assicahedra of Fomin and Reading, and colored quiver mutation.
متن کاملObjects Dynamically Changing Class (work in Progress)
This paper represents work in progress; we shall be regularly updating it with proofs, examples and comparisons. Abstract. We suggest language features that allow objects to mutate, i.e. change their class membership at run-time. These features could extend an imperative, typed, class-based, object-oriented language like Java. We give an operational semantics for a mutation operation that chang...
متن کاملA Combined Pointer and Purity Analysis for Java Programs
We present a new method purity analysis for Java programs. A method is pure if it does not mutate any location that exists in the program state right before method invocation. Our analysis is built on top of a combined pointer and escape analysis for Java programs and is capable of determining that methods are pure even when the methods do heap mutation, provided that the mutation affects only ...
متن کامل